Infrastructure as Code (Iac) 近來年蔚為潮流,甚至可以說是必備顯學,如何透過系統化的方式去管理架構是個逃不跳的問題,不論是地端環境,或是雲端環境,這類型的需求都不可能少。 Terraform 我個人認為是這幾年來談到 Iac 解決方案中最熱門的選項,其開放的 Provider 架構讓其生態系非常大,能夠透過一套相同的語法來銜接各式各樣的服務提供者。
本篇文章就從入門角度來看待 Terraform 可以怎麼使用,從開發階段到正式上線階段中間,可能會遇到什麼問題,以及這些問題應該怎麼處理,譬如說
1. Terraform 的 Backend Provider 應該怎麼設定,不同設定對於安全性來說是否會有不同的優劣?
2. Terraform 該由誰運行? 到底是一台專屬的開發機器或是說透過 Continuous Integartion (CI) 的過程來運行 Terraform, 這之間各自的好處是什麼
3. Terraform 透過 Module 的方式來達到 Don't Repeat Yourself(DRY) 的架構,而 Module 本身的架構可以有哪些作法,是一個獨佔的 Repository 或是多個? 這之間的想法有什麼差異
對上述議題有興趣的可以點選全文觀看
https://medium.com/@mike.ensor/terraform-developers-tips-tricks-d5c4be14a553